网络攻击之后期利用:提权
一次性进群,长期免费索取教程,没有付费教程。
教程列表见微信公众号底部菜单
进微信群回复公众号:微信群;QQ群:16004488
微信公众号:计算机与网络安全
ID:Computer-network
在黑客攻击和系统攻击的现代社会中,黑客并不关心漏洞,黑客关心的是通过入侵他们可以做些什么。这正是杀链(kill chain)中攻击者实现其攻击全部价值的部分。
一个系统一旦被攻破,攻击者通常进行以下活动:
进行快速评估,确定本地环境特征(基础设备、连通性、账户、存在的目标文件,以及可以促进攻击的应用程序)。
定位、复制,或者修改感兴趣的目标文件,例如数据文件(专有的数据和财务信息)。
创建额外的账号并修改系统,以支持后期利用活动。
试图通过捕捉系统管理员或系统级凭证,来垂直升级用于入侵的特殊权限的级别。
尝试通过已攻破的系统来攻击网路中的剩余的数据系统(横向升级)。
安放持久的后门和保持控制隐蔽通道,并且,与已攻破的系统保持安全通信。
消除被入侵系统的入侵标志。
为了入侵成功,后渗透攻击要求对目标主机的操作系统和文件结构有全面的了解,以确保可以绕过其保护权限。后期利用的第一步就是侦察被入侵系统的本地网络状况。
一、绕过Windows用户账户控制
在Windows Vista以及更高的版本中,微软引进了安全控制策略,从高、中、低三个不同的完整性级别上来控制运行进程。一个高等级别的进程具有管理员权限,一个中等级别的进程拥有一个基本用户的权限,一个低级别的进程的权限是受限的,这样可以保证当系统受到威胁时,被击垮的程序带来的损害是最小的。
要执行任何特权操作,程序必须以管理员的身份运行,并且符合UAC的设置。
UAC有以下4个设置要求:
始终通知(Always notify):这是最严格的设置,在任何时刻,有程序要使用更高级别权限时,它都会提示本地用户。
仅在程序试图更改我的计算机时通知我(Notify me only when programs try to make changes to my computer):这是UAC的默认设置。当本地的Windows程序请求更高级别权限时,不通知用户。但是,如果第三方程序要求提升权限,它会提示。
只有当程序试图更改我的计算机时通知我(不降低桌面的亮度)(Notify me only when programs try to make changes to my computer(don’t dim my desktop)):这与默认设置相同,但当提示用户时不降低系统监视器的亮度。
从不提示(Never notify):此选项将恢复系统到Vista以前的版本。如果该用户是管理员,所有的程序将以高度完整性运行。
因此,在渗透完成之后,测试者(与攻击者)需要知道以下两件事:
哪个用户是系统已经识别的用户?
在该系统中,这些用户具有什么权限?
这些可以通过下面这个命令来获得:
一个被入侵的系统可操作的内容是非常完整的,由Mandatory Label\High Mandatory Level Label展示的内容如下图所示。
使用C:\>whoami/groups获得信息
如果这个表是Mandatory Label\Medium Mandatory Level,为了更多后期利用步骤的成功,测试人员需要将用户权限从标准用户提升到管理员权限。
提升权限的第一种方法是使用Metasploit框架,在其上运行exploit/windows/local/ask命令,它将发起RunAs攻击。这个攻击可以创建一个可执行文件,当它被触发时,会运行一个发起提升权限请求的程序。为了避免被本地的杀毒软件检测到,这个可执行文件的创建要使用EXE::Custom选项或Veil-Evasion进行加密。
RunAs攻击的缺点是,当程序企图修改计算机设置时,系统会对用户发出提醒。此警报可能会导致权限提升被认定为攻击。
如果系统当前的用户是在管理员组,同时用户账户控制程序UAC设置为默认,即仅在程序试图更改我的计算机时通知我(如果设置为始终通知,就可以避免),攻击者就可以使用Metasploitexploit/windows/local/bypassuac模块来提升其特权。
虽然bypassuac模块会在目标系统上创建多个工件,它们可以被大多数杀毒软件识别。但是,exploit/windows/local/bypassuac_inject模块直接运行在内存中的反射DLL中,由于它不触碰硬盘,最大限度地降低了被杀毒软件检测到的概率。
试图绕过UAC控制时的一些注意事项如下:
如果Windows Vista系统对每个操作都需要权限控制,那么绕过用户账户控制的攻击不会起作用。
虽然Windows 8系统仍然很容易受到这种攻击。但是,Metasploit框架攻击目前还没有针对Windows 8.1的模块。如果有人尝试攻击Windows 8.1,一个隐蔽攻击的困难是提升用户的权限,即在攻击发生前用户会被提示点击“确定”按钮。攻击者可以选择使用exploit/windows/local/ask提高攻击的成功率。
考虑系统系统的移动(水平/横向升级),同时,如果当前用户是具有其他系统本地管理员权限的域用户,可以使用现有的身份验证令牌来获取并绕过UAC。一种常见的攻击是使用Metasploit的exploit/windows/local/current_user_psexec模块实现。
二、对已入侵的系统进行快速侦察
一旦系统被入侵,攻击者需要获得有关该系统的关键信息,它的网络环境、用户和用户账号等信息。通常情况下,他们将在shell提示符下输入并调用一系列命令或脚本。
如果被入侵的系统是基于UNIX平台的,典型的本地侦察命令见下表。
UNIX平台的本地侦察命令
这些命令包含了可用选项的简要说明。完整信息请参考相应的命令的帮助文件,在哪里可以了解如何使用命令的选项。
对于Windows系统,命令形式如下表所示。
Windows系统下的侦察命令
使用WMIC的脚本语言
针对新的目标系统,攻击者和渗透测试人员利用内置的脚本语言。例如,Windows设备管理命令行(Windows Management Instrumentation Command-line,WMIC),通过使用命令行和脚本界面来简化访问Windows配置。如果被渗透系统支持WMIC,可以通过一些命令来收集信息。请参见下表。
支持WMIC的信息收集命令
PowerShell是一种基于.NET框架的脚本语言,从控制台上运行,提供用户访问Windows文件系统和对象的接口,例如注册表。Windows 7及更高的操作系统上默认安装PowerShell。WMIC为PowerShell提供了扩展脚本支持和自动化,允许Shell用户对本地和远程目标进行集成和互操作。
PowerShell让测试人员访问被击垮系统上的shell和脚本语言。作为Windows操作系统的自带程序,其使用的命令不会触发杀毒软件。当脚本在远程系统上运行时,由于PowerShell不会写入磁盘,因而可以绕过反病毒软件和白名单过滤(假设用户已经允许使用PowerShell)。
PowerShell支持一些被称为cmdlets的内置函数。PowerShell的优点之一是由于cmdlets是常见的UNIX命令的别名,所以在键入ls命令将返回一个典型的目录列表,如下图所示。
使用ls命令的屏幕截图
PowerShell是一种支持复杂操作的脚本语言,建议用户花时间来熟悉它的使用。一些较简单的、可以立即展示结果的命令见下表。
简单的PowerShell命令表
渗透测试人员可以使用Windows自带的命令文件、DLL、.NET函数、WMI调用和PowerShell的cmdlets命令一起创建后缀名为.ps1的PowerShell脚本。
在最近的渗透测试中,我们禁止在客户端的系统中安装任何可执行的软件。我们在被感染的系统上,使用PowerShell键盘记录工具来抓去管理员级别的证书,然后感染网络上的更多的系统。最有效的渗透和后期渗透脚本,包括键盘记录,它是Nikhil Mittal’s Nishang包的一部分(https://code.google.com/p/nishang/downloads/detailname=nishang_0.3.0.zip)。
侦察也应该扩展到本地网络。既然你正在“盲目”地工作,你将需要创建一个与被击垮主机通信的地图,被击垮主机包括实时系统和子网。首先在shell提示符下输入IFCONFIG(基于UNIX的系统)或IPCONFIG/ALL(Windows系统)。这将允许一个攻击者确定以下内容:
DHCP地址是否有效。
本地IP地址,这将确定至少有一个活跃子网。
网关的IP地址和服务器地址。系统管理员通常遵循网络中的编号惯例,并且,如果攻击者知道一个地址,例如,一个网关服务器的地址172.16.21.5,他们将用ping找地址,如172.16.20.5、172.16.22.5等,通过这些地址寻找到其他子网。
能过域名利用活动目录(Active Directory)账号。
如果攻击系统和目标系统使用的是Windows操作系统,net view命令可以用来枚举网络上的其他Windows操作系统。攻击者使用netstat–rn命令来审查那些包含通往其他网络,或者感兴趣系统的静态路由的路由表。
可以使用nmap来扫描本地网络嗅探出ARP广播。另外,Kail有几个工具可以用作SNMP端点分析工具,包括:nmap、onesixtyon和snmpcheck。
部署一个数据包嗅探器来映射流量将会帮助你识别主机名、活跃子网和域名。如果DHCP地址没有启用,它也将允许攻击者确定任何未使用的、静态的IP地址。Kail预先配置使用Wireshark(基于GUI的数据包嗅探器),但是你可以在一个后期利用脚本中,或者在命令行使用tshark,如下图所示。
使用tshank命令
三、找到并提取敏感数据——掠夺目标
术语掠夺(pillaging,有时也称为pilfering)是黑客成功攻击计算机系统后的延续,这些黑客像海盗一样尽最大可能偷窃和毁坏目标。这个术语已经流传下来,特指当一个系统被攻占后,攻击者完成偷窃和修改个人财产以及财务数据的行为。
之后,攻击者聚焦在第二目标——系统文件,利用这些系统文件提供的信息来支持另外的攻击。第二目标的文件的选择依赖于目标的操作系统。举个例子来说,如果系统是UNIX,那么攻击者就会把下列文件作为工作目标:
系统和配置文件(通常在目录/etc下,但也可能在/usr/local/etc,或者是其他位置)。
密码文件(/etc/password和/etc/shadow)。
配置文件和在.ssh目录中的公钥和私钥。
可能包含在.gnupg里的公钥和私钥环。
电子邮件和数据文件。
在Windows系统中,攻击者会将以下文件作为攻击目标:
可被用来提取口令、加密密钥等的系统内存。
系统注册表文件。
安全账号管理(Security Accounts Manager,SAM)数据库,包含口令的散列版本或者SAM数据库的替代版,可以在%SYSTEMROOT%\repair\SAM与%SYSTEMROOT%\System32\config\RegBack\SAM中找到它。
任何用于加密的口令文件或者种子文件。
电子邮件和数据文件。
别忘了检查包含临时项目的文件夹。举个例子,UserProfile\AppData\Local\Microsoft\Windows\Temporary Internet Files\可能包含让人感兴趣的文件、图片、和cookies。
如上所述,这些系统内存包含了大量的攻击者可以利用的信息。因此,它通常是一个你需要优先获取的文件。系统内存可以从几个来源下载,下载文件是一个独立的映射文件,这些来源如下:
通过上传一个工具到被攻击的系统然后直接复制内存(这些工具包括Belkasoft RAM capturer、MandiantMemoryze和MonsolsDumpIt)。
通过复制Windows冬眠文件hiberfil.sys,然后利用Volatility来解密和分析文件。Volatility,在Kali中Forensics菜单中可以找到,是一个分析内存的框架,内存可以来自系统RAM,以及其他包含系统内存的文件。它依赖于写在Python中的插件来分析内存和提取数据,这些数据包括加密密钥、口令、注册信息,以及其他相关信息。
通过复制一个虚拟机,然后将VMEM文件转化为内存文件。
如果你上传一个设计的程序,在被攻击的系统中来抓取内存,有可能这个特殊的应用会被杀毒软件识别为恶意软件。大多数的杀毒软件能识别散列签名和内存获取软件的行为,如果物理内存的敏感数据有被泄露的风险,它就会通过拉响警报来保护物理内存的敏感数据。获取软件将被隔离,目标会收到一个关于这个攻击的警告报警。
为了避免这种情况的发生,用Metasploit框架,使用命令来运行在目标内存中的可执行文件,这个命令如下:
前面执行的命令calc.exe是一个假的可执行文件,但是,实际上上传了内存获取执行文件,并在它的进程空间中运行。
这个可执行文件并不显示在程序列表中,例如任务管理器(Task Manager),并且使用数据取证技术的检测更加困难,因为它并不写到硬盘中。此外,它会避开系统的杀毒软件,因为它一般不在内存空间去搜索恶意软件。
物理内存一旦被下载,利用Volatility框架,内存就可以被分析,Volatility框架是设计来取证、分析内存的一系列Python脚本。如果操作系统支持,Volatility将会扫描内存文件并提取下列内容:
图片信息和系统数据,充分到可以将映像与源系统联系在一起。
运行进程、DLL、线程、套接字、连接和模块。
开放的网络套接字和连接,最近打开的网络连接。
内存地址,包括物理的和虚拟的内存映射。
LM/NTLM散列和LSA私钥。LanMan(LM)口令散列是微软保护口令的初衷。这么多年过去了,现在它已经很容易被攻击,而且很容易将这些散列恢复成实际的口令。NT LanMan(NTLM)是最新的抵抗攻击的散列。然而,它们通常和NTLM版本一起存储,以达到向后兼容的目的。本地安全权威(Local Security Authority,LSA)存储的密钥是本地的口令:远程访问(有线的和无线的)、VPN、自动登录口令,等等。任何存储在系统的口令都是脆弱的,特别是当用户重复使用口令时。
特定的正则表达式或字符串存储在内存中。
对一个被恶意软件Zeus感染的系统中的样本图片(https://code.google.com/p/volatility/wiki/SampleMemoryImages),我们将用Volatility框架来获取加密的LanMan口令散列值。
第一步就是确定映像和操作系统的类型,命令如下:
上述命令的执行结果如下图所示。
使用Volatility框架获取操作系统类型
当执行下列命令时,hivelist插件将对不同的hives注册表打印出初始的虚拟内存位置:
上述命令的执行结果如下图所示。
使用hivelist插件获取注册表的内存位置
为了取出散列值,需要SAM和SYSTEM hives的初始虚拟内存位置。使用一些命令,可将这些结果会存到用逗号分隔的文件中,它们将直接用于密码破坏,这些命令如下:
上述命令执行结果如下图所示。
使用SAM和SYSTEM hives内存的屏幕截图
隔离的LM散列可能被Hashcat、John the Ripper、Ophcrack与RainbowTables破解。
四、创建附加账户
下面的命令是具有高度侵略性的,通常会被系统拥有者在应急响应程序中检测到。然而,它们会频繁地被一个攻击者采用,以此来转移对更持久的访问机制的注意,相关的命令参见下表。
一些具有高度侵略性的命令
如果你创建一个新的用户账户,那么该账户会被任何一个登录进入被攻击系统的欢迎界面的用户注意到。为了使这个账户不可见,你需要用下列的REG命令行修改注册表:
这个命令将修改指定的注册表来隐藏用户账户(/V)。基于目标的特别的操作系统版本,会有一些特别的语法要求,因此,首先得确定Windows版本,并且在攻击目标之前,在一个可控的环境中验证它。
五、使用Metasploit工具进行后期渗透活动
Metasploit被用来支持渗透和后期渗透利用活动。目前的版本包括大约200个模块,模块简化了后期利用活动。我们将讨论一些最重要的模块。
在下面的屏幕截图中,我们成功地渗透了一个Windows XP系统(一个“经典”的攻击,经常被用来验证Meterpreter的复杂性)。第一步就是直接侦察网络和被攻击系统。
初始的meterpreter shell,在一段时间内是脆弱的和易受攻击的。因此,一旦一个系统被渗透,我们将移动这个shell,然后将其和一个更加稳定的进程绑定在一起。这样也会使得渗透更难被检测到。
在meterpreter的提示下,输入ps来获得一系列的运行进程,如下图所示。
使用meterpreter,输入ps来获得进程列表
ps命令会返回每个进程的完整路径。在上图中,这点被忽略了。ps列表标明c:\windows\Explorer.EXE正在运行。在这个特殊的例子中,它被识别为ID为1460的进程,如下图所示。由于这是一个稳定的应用,我们将把shell移动到这个进程中。
将shell移动至ID为1460的进程
既然我们和远程系统有了一个稳定的shell连接,我们将用meterpreter脚本来支持后期入侵利用活动。
我们必须确认的第一个事实是:我们是否在一个虚拟机上?使用meterpreter,打开受损系统和攻击者之间的会话,执行run checkvm命令,如下图所示。返回的数据表明,这是一个VMware虚拟机。
使用run checkvm命令
一些通过meterpreter使用的重要的后期利用模块见下表。
meterpreter的重要的后期利用模块
Windows enumerator(winenum)是最有效的meterpreter脚本之一。如下图所示,它同时使用命令行和WMIC来获得目标系统的全面表征。
使用winenum的屏幕截图
除了枚举之外,winenum脚本还可以转储注册表信息,收集系统用于解密的散列值,如下图所示。
使用wmic的屏幕截图
meterpreter还有一些有用的、支持复杂功能的库。例如,espia库支持通过如下命令对入侵系统进行截图:
stdapi库允许远程攻击者通过操作摄像头,从受感染的系统中收集音频和视频,并且将这些数据返回给攻击者。
六、在已入侵主机上提升用户权限
通常,很有可能获得一个系统的Guest或User访问权限。攻击者获得重要信息的能力,将受到降低的权限级别的限制。因此一个常见的后期利用行为是将访问权限从Guest级别不断提升到User,再到Administrator,最后到SYSTEM级别。这种提升访问权限的方式通常被称作垂直升级(vertical escalation)。
用户可以通过一些技术来获得高级访问凭证,包括以下几个方法:
使用网络嗅探器、键盘记录器,来捕获传送的用户凭证(dsniff可以用来分离正在进行的传输中的密码,或者从Wireshark或tshark会话中保存的一个pcap文件)。
对本地存储的密码进行一个检索。有些用户收集电子邮件文件夹的密码(经常被称为password),由于密码重复使用,简单的密码系统是很常见的,所以找到那些密码,并在升级的过程中使用。
NirSoft(www.nirsoft.net)开发了几款免费的工具,可以上传到入侵系统中,使用meterpreter从操作系统和缓存密码的应用程序(邮件应用程序、远程访问软件、FTP和网络浏览器)中分离出密码。
使用meterpreter或者诸如hobocopy、fgdump、pwdump(使用meterpreter将它们上传到目标系统)等应用程序来转储SAM和SYSKEY文件。
使用类似process injector(www.tarasco.org/security/Process_Injector/)的工具,直接将恶意代码注入系统级运行服务中。
当一些应用程序加载时,它们使用特殊的顺序读取动态链接库(dynamic link library,DLL)文件。创建一个与合法DLL同名的假DLL文件是可能的,把它放在一个特定的目录位置,让应用程序加载并执行它,最终实现攻击者的权限提升。一些应用程序容易受到DLL劫持(www.exploit-db.com/dll-hijacking-vulnerable-applications/)。
使用利用缓冲区溢出,或其他手段来提升权限的渗透方式。
通过meterpreter执行getsystem脚本,自动地将管理员权限提升到系统级别。
Windows 7和Windows 2008不允许远程不受信任的系统访问管理员的共享,例如ADMIN$、C$等。这些共享可能需要meterpreter脚本,例如incognito,或支持SMB上的攻击。为了解决这个问题,将HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System加入注册表,并增加一个新的名字为LocalAccount TokenFilterPolicy的DWORD(32-bit)键,并将值设为1。
七、使用incognito重放身份验证令牌
incognito是一个特别有趣的meterpreter库,它允许你伪造和重放用户令牌。令牌是临时密钥,它允许你在不提供密码或其他凭证的前提下,访问网络和系统资源。这些令牌将持续存在一个系统中,除非系统重新启动。
一旦你入侵了一个系统,在不需要破译密码的前提下,就可以使用令牌去冒充生成该令牌的用户。这些伪造令牌允许攻击者提升他们的权限。
在提示符下,输入以下内容:
前面这个命令的执行结果,如下图所示。
使用incognito
第一步是确定被感染系统上存在的所有有效的令牌。你可以看到令牌的个数,取决于你最初入侵目标系统所使用的访问级别。
你将看到两种类型的令牌,如下图所示。授权令牌(delegation tokens)支持交互式登录(例如,登录到一个本地系统,或通过远程桌面进行交互)。模拟令牌是非交互的会话,例如当系统连接到一个网络驱动器。
使用令牌列表
正如你所看到的,一个授权令牌已经被标识为一个系统管理员。如果我们可以伪造这个令牌,我们就可以拥有它的特权。
当在incognito中调用mpersonate_token命令时(如下图所示),注意这两个反斜杠在命令中是必要的。
使用授权令牌
现在,如果我们在meterpreter提示符下运行shell命令并输入whoami,系统将会认定我们是伪造令牌的那个系统管理员。
(一)使用Windows凭据编辑器操作访问凭据
Windows凭据编辑器(Windows Credential Editor,WCE,参见http://www.ampliasecurity.com/research/wcefaq.html),是一个精简的incognito的脚本。它有32位和64位的版本,以及一个在所有Windows平台上通用的“通用版”。WCE允许用户执行以下操作:
在Windows系统上执行pass-the-hash攻击。
从系统存储器上收集NTLM凭证(使用或没使用代码注入。)
从Windows系统中收集Kerberos票据。
使用从其他Windows或UNIX系统上获得的Kerberos票据获取访问权限。
由Windows系统转储明文密码。
在meterpreter命令提示符下使用WCE,将executable上传到被感染的系统中。然后初始化一个交互式的shell并执行WCE。正如你在下图中看到的,-w选项很容易提取明文管理员密码。
使用WCE–w选项提取密码
(二)从管理员升级到系统管理员
系统管理员权限允许攻击者创建和管理账户,访问系统上大部分有效数据。然而,一些复杂的功能任务,要求请求者具有系统(SYSTEM)级别的访问权限。有几种方法可以实现将特权升级到系统级别。最常用的方法是用at命令,它是Windows为一个特定的时间分配任务的命令。at命令总是在系统级权限上运行。
使用一个交互式的shell(在meterpreter命令提示符下输入shell),打开一个命令提示符,并确定被感染系统的本地时间。如果时间是下午12:50(该功能采用24小时计时法),在稍晚的时间安排一个交互式的命令shell,如下图所示。
使用at命令
当at任务指定好运行时间后,在meterpreter命令提示符下,再次确认一下你的访问权限,如下图所示。
在meterpreter命令提示符下确认权限级别
正如你所见,权限已经提升到系统级别。
八、访问新账户实现横向升级
在横向升级中,攻击者保留其现有的凭据,但是,用它们去模拟不同的用户账户。例如,被入侵系统A上的一个用户,去攻击系统B上的一个用户,尝试去入侵系统B。
当我们遇到一些向量攻击时,例如远程访问攻击,我们将使用横向权限升级攻击。
九、消除痕迹
一旦一个系统被渗透,攻击者必须掩饰他们的踪迹,以免被发现,或者至少为防守者重构该事件制造困难。
攻击者可以完全删除Windows事件日志(如果它们保留在被感染的服务器上)。这些可以通过对入侵系统使用一个命令shell,并使用以下命令来实现:
/a选项直接删除所有日志,/s选项删除包括所有子文件夹的文件。/q选项禁用所有的查询,这些查询要求有一个yes或者no的回应,/f选项强行删除文件,使得恢复更加困难。
也可以通过在meterpreter提示符下执行clearev命令来删除文件。该命令将删除目标机上的应用程序、系统和安全日志(该命令没有选项和参数)。
通常情况下,删除一个系统日志不会触发任何警报。事实上,大多数组织都是随意设置日志系统,以至于系统日志丢失被视作一件可能发生的事情,并且不会对其丢失做深入的调查。
Metasploit有一个绝招,那就是timestomp选项,它允许攻击者更改一个文件的MACE参数(一个文件的最后一次修改、访问、创建,以及MFT入口修改时间)。一旦系统被入侵,并且一个meterpreter shell已经建立,timestomp就会被调用,如下图所示。
执行timestomp-h命令
例如,被入侵系统,C盘包含一个名叫README.txt的文件。此文件的MACE值表示它是最近创建的,如下图所示。
执行timestomp-v命令
如果我们想隐藏这个文件,我们可以将其移动到一个杂乱的目录,如Windows\System32下。但是,这个文件对于那些根据创建时间或其他MAC参数进行排序的人,是显而易见的。因此,使用下面的命令,将cmd.exe文件中的MAC信息复制到README.txt文件中。
我们也可以使用-b选项来清空MAC数据。如下图所示,我们将MAC数据的时间更改到一个未来的时间。
使用timestomp-v命令更改时间
这种变化会引起调查者的注意,但他们也无法利用该数据进行取证分析。来自于原始Windows平台的属性看起来是什么样的?如果一个系统管理员调用一个文件的系统属性,但是文件的创建和修改时间已经被改为了1601年(这个时间被Microsoft作为初始系统启动的时间),与此相反,文件的上次访问时仍然是正确的,如下图所示。
Windows的文件属性
虽然这是预期的行为,它仍然可以为调查者提供线索。为了能够彻底的破坏调查,攻击者可能递归地改变一个目录下所有的设置时间,或者在一个特定的驱动器上所有的设置时间,只需执行以下命令:
这种解决方法并不是完美的。很明显,已经发生了一个攻击。此外,时间戳很可能存储在硬盘的其他位置,并且方便调查。如果目标系统正在使用入侵检测系统来监控系统的变化,例如Tripwire,会产生timestomp活动的警报。因此,当要求高度隐蔽时,破坏时间戳的价值是有限的。
十、结语
我们着重介绍了渗透到目标系统后,紧接着要做的事。即对系统的服务特征与本地环境进行初始快速评估。我们还了解到如何识别和定位感兴趣的目标文件、创建用户账户,通过垂直升级以提高访问权限,并删除入侵的痕迹。
微信公众号:计算机与网络安全
ID:Computer-network
【推荐书籍】